Dash and Underscore in Naming

github 项目名格式疑惑:为什么很少见到有用下划线_分隔的项目名的? - V2EX
文件命名,下划线还是中划线? | 今天我学了什么
Linux File Names
Linux文件名命名规范 - EasonJim - 博客园

不同的场景有不同的命名规范。

Linux

Linux 的规范里并没有明确的区分 dash - 和 underscore _,不过有推荐 - 用来分割目录名中单词,_ 用于分割文件名中单词。

DNS(域名系统)

域名中不可包括下划线,路径中可以,只是不推荐在链接中使用。GitHub 项目名往往出现在链接中,所以不推荐使用 _,同时因为链接不区分大小写和超链接鼠标 hover 时自动下划线样式,所以命名也习惯用纯小写,用 - 分隔。不过不推荐归不推荐,有些安卓的项目用 _ 来表示文件夹层级,文件夹名称本身用 - ,例如 github.com/LineageOS/android_packages_apps_Settings 表示存放于 android/packages/apps/Settings 文件夹 android_packages_apps_Settings

SEO(搜索引擎优化)

下划线连接视为一个整体,连字符连接依旧为多个单词,使用连字符命名更容易被搜索引擎匹配。IDE 中一般如此处理,双击快速选中整个变量,所以变量名如果连接也是用下划线。

总结

对内的东西遵循程序员的规则,用_
对外的东西遵循一般文学规则,用-